//package com.jzy.bxb.core.mina.handler;
//
//import org.apache.mina.core.session.IoSession;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import com.google.protobuf.Message;
//import com.jzy.bxb.core.handler.HandlerEntity;
//import com.jzy.bxb.core.handler.IHandler;
//import com.jzy.bxb.core.handler.TcpHandler;
//import com.jzy.bxb.core.script.ScriptManager;
//import com.jzy.bxb.core.util.IntUtil;
//import com.jzy.bxb.core.util.MsgUtil;
//
///**
// * 游戏前端消息处理器
// * <p>
// * 	包长度（2）+消息ID（4）+消息长度（4）+消息内容
// * </p>
// *
// * @author JiangZhiYong
// * @date 2017-04-01
// * QQ:359135103
// */
//public abstract class ClientProtocolHandler extends DefaultProtocolHandler{
//	private static final Logger log = LoggerFactory.getLogger(ClientProtocolHandler.class);
//	
//	public ClientProtocolHandler(int messageHeaderLenght) {
//		super(messageHeaderLenght);
//	}
//
//	@Override
//	public void messageReceived(IoSession session, Object obj) throws Exception {
//		byte[] bytes = (byte[]) obj;
//		try {
//			if (bytes.length < messageHeaderLenght) {
//				log.error("messageReceived:消息长度{}小于等于消息头长度{}", bytes.length, messageHeaderLenght);
//				return;
//			}
//			short packetLength=IntUtil.bigEndianByteToShort(bytes, 0, 2);	//消息包长度
//			if(packetLength<1){
//				log.warn("消息长度为0");
//				session.closeNow();
//			}
//			if(bytes.length-2<packetLength){	//数据不够
//				return;
//			}
//			int mid=IntUtil.bigEndianByteToInt(bytes, 2, 4);	//消息ID
////			int protoLength=IntUtil.bigEndianByteToInt(bytes, 6, 4); 	//TODO 消息长度,不需要？
//			
//			if (ScriptManager.getInstance().tcpMsgIsRegister(mid)) {
//				Class<? extends IHandler> handlerClass = ScriptManager.getInstance().getTcpHandler(mid);
//				HandlerEntity handlerEntity = ScriptManager.getInstance().getTcpHandlerEntity(mid);
//				if (handlerClass != null) {
//					Message message = MsgUtil.buildMessage(handlerEntity.msg(), bytes, messageHeaderLenght,
//							bytes.length - messageHeaderLenght);
//					TcpHandler handler = (TcpHandler) handlerClass.newInstance();
//					if (handler != null) {
//						messageHandler(session, handlerEntity, message, handler);
//						return;
//					}
//				}
//			}
//			forward(session, mid, bytes);
//			
//			
//		}catch (Exception e) {
//			log.error("messageReceived",e);
//		}
//	}
//
//
//	
//}
